﻿using System;
using System.Collections.Generic;
using System.Data;
using Onshi.POS.AccesoDatos;
using Onshi.POS.AccesoDatos.Interfaces;
using Onshi.POS.Modelo.Entidades.Tipos;

namespace Onshi.POS.Repositorios
{
    public class RepositorioTipoFormaPago : RepositorioTipo<TipoFormaPago>
    {
        #region Constructores

        public RepositorioTipoFormaPago()
            : base()
        {
            servicioDatosTipoFormaPago = new ServicioDatosTipoFormaPago();
        }

        #endregion

        #region Atributos

        private IServicioDatosTipoFormaPago servicioDatosTipoFormaPago;

        #endregion

        #region Propiedades

        private IServicioDatosTipoFormaPago ServicioDatosTipoFormaPago
        {
            get { return servicioDatosTipoFormaPago; }
        }

        #endregion

        #region Metodos

        protected override TipoFormaPago FilaAEntidad(DataRow fila)
        {
            TipoFormaPago tipoformapago = new TipoFormaPago();
            tipoformapago.Id = (Byte)fila["IdTipoFormaPago"];
            tipoformapago.Nombre = (String)fila["Nombre"];
            return tipoformapago;
        }

        public void Insertar(TipoFormaPago entidad)
        {
            entidad.Id = ServicioDatosTipoFormaPago.TipoFormaPagos_Insertar(entidad.Nombre);
        }

        public void Modificar(TipoFormaPago entidad)
        {
            ServicioDatosTipoFormaPago.TipoFormaPagos_Modificar(entidad.Id, entidad.Nombre);
        }

        public void Eliminar(TipoFormaPago entidad)
        {
            ServicioDatosTipoFormaPago.TipoFormaPagos_Eliminar(entidad.Id);
            entidad = null;
        }

        public override List<TipoFormaPago> DevolverTodos()
        {
            using (DataSet ds = ServicioDatosTipoFormaPago.TipoFormaPagos_DevolverTodos())
            {
                entidades = TablaALista(ds.Tables[0]);
            }
            return entidades;
        }

        #endregion
    }
}
